[WUSTCTF2020]level3
64位IDA打开,看main函数
根据它的提示应该是变换的base64加密
点击15行的函数base_encode
加密流程和base64一样的,那应该就是对加密表进行了变换
双击base_table[],通过交叉引用我们可以看到有其他的函数调用了它,过去看看
一个换表,将原来base64中的前20位倒过来
编写脚本解决:
1 | import base64 |
flag是:flag{Base64_is_the_start_of_reverse}
[BJDCTF2020]BJD hamburger competition
很有意思的一个游戏
由于unity是用C#开发,所以用dnspy
在BJD hamburger competition_Data\Managed
文件夹中找到Assembly-CSharp.dll
这是程序的源码,用来存放C#工程
打开,搜索字符串
逻辑是选择了正确的配料得到一个值,这个值sha1加密之后是DD01903921EA24941C26A48F2CEC24E0BB0E8CC7,最后有一个MD5加密
SHA1解密为1001
看MD5函数
X2是变成大写,然后后面写的是取0-20位
flag是:flag{B8C37E33DEFDE51CF91E}
[FlareOn6]Overlong
运行一下,发现就一句话,像是冒号后面还有东西的样子
看看主函数
第7行是写入了什么,代码给的是长度28位,但是打开unk_402008
发现很长,有127位
可以写代码改变然后解密,这里使用OD,更加快捷
看这一行,我们要在栈中修改它的值,在这一行右键->Binary->Edit
改成AF
然后在OD中运行
flag是:flag{I_a_M_t_h_e_e_n_C_o_D_i_n_g@flare-on.com}
[WUSTCTF2020]Cr0ssfun
ida64打开,从主函数看有个check,打开全都是这样的一个套一个
都复制了跑一下,按顺序输出
1 |
|
flag是:flag{cpp_@nd_r3verse_@re_fun}